There are three types of Spread Spectrum Transmission System. These are:    1. Frequency hopping—the signal is rapidly switched between different frequencies within the hopping bandwidth pseudo-randomly, and the receiver knows before hand where to find the signal at any given time.    2. Time hopping—the signal is transmitted in short bursts pseudo-randomly, and the receiver knows beforehand when to expect the burst.    3. Direct sequence—the digital data is directly coded at a much higher frequency. The code is generated pseudo-randomly, the receiver knows how to generate the same code, and correlates the received signal with that code to extract the data.
In general, such Spread Spectrum transmission systems are distinguished by three key elements:    i) The signal occupies a bandwidth much greater than that which is necessary to send the information. This results in many benefits, such as immunity to interference and jamming and multi-user access.    ii) The bandwidth is spread by means of a code which is independent of the data. The independence of the code distinguishes this from standard modulation schemes in which the data modulation will always spread the spectrum somewhat.    iii) The receiver synchronizes to the code to recover the data. The use of an independent code and synchronous reception allows multiple users to access the same frequency band at the same time.
In order to protect the signal, the code used is pseudo-random. It appears random, but is actually deterministic, so that the receiver can reconstruct the code for synchronous detection. This pseudo-random code is also called pseudo-noise (PN).
The present invention is particularly relevant to CDMA transmission, which is a form of Direct Sequence Spread Spectrum transmission. CDMA can be used for the transmission of digitized voice, ISDN channels, modem data, etc. Such transmission is shown in FIG. 1, which shows a simplified Direct Sequence Spread Spectrum CDMA system. For clarity, the figure shows one channel operating in one direction only. FIG. 2 illustrates how information data modulates the pseudorandom code. The general operating principles of such a CDMA system are well known and will not be considered in detail here. However, it can be considered to comprise the following in which:
A) Signal transmission consists of the following steps (FIG. 1, FIG. 2):                1. A pseudo-random code is generated, different for each channel and each successive connection.        2. The Information “signal” data modulates the pseudo-random code (the Information data is “spread”, FIG. 2).        3. The resulting signal modulates a carrier.        4. The modulated carrier is amplified and broadcast.        
B) Signal reception consists of the following steps (FIG. 1):                1. The carrier is received and amplified.        2. The received signal is mixed with a local carrier to recover the spread digital signal.        3. A pseudo-random code is generated, matching the anticipated signal.        4. The receiver acquires the received code and phase locks its own code to it.        5. The received signal is correlated with the generated code, extracting the Information data.        
Satellite navigation systems, such as GPS and Galileo, use a CDMA transmission system. For simplicity, the foregoing text will focus on satellite navigation systems, taking the GPS system as a specific example.
The GPS system presently comprises more than 24 satellites, of which usually from 8 to 16 are simultaneously within the sight of a receiver. These satellites transmit e.g. orbital parameters, time information of the transmission, etc. A receiver, used in positioning, normally deduces its position by calculating the propagation time of a signal transmitted simultaneously from several satellites, belonging to the positioning system, to the receiver. For the positioning, the receiver must typically receive the signal of at least four satellites within sight to compute the position.
Each satellite of the GPS system transmits a “ranging” signal at a carrier frequency of 1575.42 MHz called L1. This frequency is also indicated with 154f0, where f0=10.23 MHz. Furthermore, the satellites transmit another “ranging”signal at a carrier frequency of 1227.6 MHz called L2, i.e. 120f0. However, this L2 signal is not in civilian use and will not be described in detail here.
In the satellite, the modulation of these signals is performed with at least one pseudo random sequence. This pseudo random sequence is different for each satellite and each “ranging” signal from each satellite. As a result of the modulation, a code-modulated wideband “ranging” signal is generated. The modulation technique used makes it possible in the receiver to distinguish between the signals transmitted from different satellites, although the carrier frequencies used in the transmission are substantially the same (i.e. CDMA).
In each satellite, for modulating the L1 signal, the pseudo random sequence used is e.g. a so-called C/A code (Coarse/Acquisition code), which is a code from the family of the Gold codes. Each GPS satellite transmits a signal by using an individual (unique) C/A code. The codes are formed as a modulo-2 sum of two 1023-bit binary sequences. The first binary sequence G1 is formed with a polynome X<10>+X<3>+1, and the second binary sequence G2 is formed by delaying the polynome X<10>+X<9>+X<8>+X<6>+X<3>+X<2>+1 in such a way that the delay is different for each satellite. This arrangement makes it possible to produce different C/A codes with an identical code generator. The C/A codes are thus binary codes whose chipping rate in the GPS system is 1.023 MHz.
The C/A code comprises 1023 chips, wherein the iteration time (epoch) of the code is 1 ms. The carrier of the L1 signal is further modulated by navigation information at a bit rate of 50 bit/s. The navigation information comprises information about the satellite integrity (“health”), orbital parameters, GPS time information, etc.
The satellites are each arranged to transmit the beginning of their C/A code at the same instant in time, e.g. the start of the week. Once the C/A code from each satellite has been transmitted, the C/A code is repeated.
During their operation, the satellites monitor the condition of their equipment. The satellites may use, for example, so-called “watch-dog” operations to detect and report possible faults in the equipment. The errors and malfunctions can be instantaneous or longer lasting. On the basis of the health data, some of the faults can possibly be compensated for, or the information transmitted by a malfunctioning satellite can be totally disregarded. Furthermore, in a situation in which the signal of more than four satellites can be received, the information received from different satellites can be weighted differently on the basis of, for instance, carrier to noise ratio. Thus, it is possible to minimize the effect of errors on measurements, possibly caused by satellites which have a low signal level.
To detect the signals of the satellites and to identify the satellites, the receiver must perform acquisition, whereby the receiver searches for the signal of each satellite at a time and attempts to be synchronized and locked to this signal so that the pseudorange measurement (distance to a satellite) can be made. If the signal level is very low, and the signal cannot be demodulated it is still possible to make a pseudorange measurement, and calculate the receiver position with it if the ephemeris information is available
Acquisition of a GPS signal occurs by sequentially adjusting the relative timing, which is defined as code phase, of the stored replica (synchronisation) code sequence in the GPS receiver relative to the received signal broadcast by the satellite, and observing the correlation output. The alignment of the code phase must be within less than one chip of the sequence for any measurable response. This might mean searching for a response by trying up to all 1,023 possible code phase positions. However, network assistance may speed up this process (see below).
The positioning receiver must perform the acquisition e.g. when the receiver is turned on and also in a situation in which the receiver has not been capable of receiving the signal of any satellite for a long time. Such a situation can easily occur e.g. in portable devices, because the device is moving and the antenna of the device is not always in an optimal position in relation to the satellites, which impairs the strength of the signal coming in the receiver. Also, in urban areas, buildings affect the signal to be received, and furthermore, so-called multipath propagation can occur, wherein the transmitted signal comes into the receiver along different paths, e.g. directly from the satellite (line-of-sight) and also reflected from buildings. This multipath propagation causes that the same signal is received as several signals with different phases.
Following signal acquisition (and Doppler frequency adjustment to take account of the relative movement between the satellites and the receiver—not discussed here), the positioning arrangement in the receiver has two primary functions:    1. To calculate the pseudorange between the receiver and the different GPS satellites, and    2. To determine the position of the receiver by utilizing the calculated pseudoranges and the position data of the satellites. The position data of the satellites at each time can be calculated on the basis of the Ephemeris received from the satellites.
The distances to the satellites are called pseudoranges, because the time is not accurately known in the receiver. Thus, the determinations of position and time are repeated until a sufficient accuracy is achieved with respect to time and position. Because time is not known with absolute precision, the position and the time must be determined e.g. by linearizing a set of equations for each new iteration. The pseudorange can be calculated by measuring the pseudo transmission time delays between signals of different satellites.
Almost all known GPS receivers utilize correlation methods for acquisition to the code as well as for tracking. In a positioning receiver, reference synchronisation codes ref(k), i.e. the pseudorandom sequences for different satellites are stored or generated locally. A received signal is subjected to conversion to an intermediate frequency (down conversion), after which the receiver multiplies the received signal with the stored pseudo random sequence. The signal obtained as a result of the multiplication is integrated or low-pass filtered, wherein the result is data about whether the received signal contained a signal transmitted by a particular satellite.
The multiplication is iterated in the receiver so that each time, the phase of the (synchronisation) pseudorandom sequence stored in the receiver is shifted. The correct phase is inferred from the correlation result, preferably so that when the correlation result is the greatest, the correct phase has been found. Thus, the receiver is correctly synchronized with the received signal. After the code acquisition has been completed, the next steps are frequency tuning and phase locking.
The above-mentioned acquisition and frequency control process must be performed for each signal of a satellite received in the receiver. Some receivers may have several receiving channels, wherein an attempt is made on each receiving channel to be synchronized with the signal of one satellite at a time and to find out the information transmitted by this satellite.
The positioning receiver receives information transmitted by satellites and performs positioning on the basis of the received information. For the positioning, the receiver must receive the signal transmitted by at least four different satellites to find out the x, y, z coordinates and the time data. The received navigation information is stored in a memory, wherein this stored information can be used to find out e.g. the Ephemeris data of satellites.
As previously mentioned, networks (for example cellular networks which can employ GSM, PDC, CDMA, WCDMA, CDMA2000 etc. transmission technology) are known to assist receivers in acquiring the signalling from one or more satellites to speed up the acquisition process. Thus, rather than starting the synchronisation process at an arbitrary bit position in the (synchronisation) pseudorandom code sequence, the starting point for synchronization, between the received signal and the stored/generated (synchronisation) pseudorandom code sequence is based on information provided by the network.
Currently, networks assist the positioning receivers in the code phase search by providing the position within a (synchronisation) generated/stored code to be used as a starting position in the correlation process with reference to sequence length. Thus, for example, the network provides that the starting position in the synchronisation code should be at a position corresponding to position 659 from the start of a code sequence.
The starting point is only valid at a certain time, and this validity time is also provided with the network assistance transmission. Also, the network must somehow provide (or trust that the receiver already has) knowledge of time into the receiver. However, such time transfer methods are not themselves the focus of the present invention, although they could be used in conjunction with the present invention. After having the knowledge of the code phase starting point at some point in time and knowledge of the current time, the receiver can calculate the code phase starting point for the current time.
An uncertainty tolerance window is also provided. This is also provided in relation to sequence length. Thus, the starting position may be position 659 +/−8 chip lengths in the code sequence. The uncertainty tolerance window is relevant to the elevation angle of the satellite. This is due to the fact that usually from the acquisition assistance provider's perspective the uncertainty of the remote receiver's location is greater than the uncertainty of the altitude. Therefore, the uncertainty window for the acquisition assistance is greater for those satellites, which are low on horizon.
The GPS system uses a pseudorandom code of a fixed length (1023 chips) i.e. each satellite transmitter modulates its signal by a unique pseudorandom code of the same length. The Galileo system may use a variable length pseudorandom code or it may use a static length code, but the actual length of the code may be different from GPS.